                                Release Notes
                                =============

        Broadcom NC_SI Firmware for
                BCM5717, BCM5718  (Sawtooth)
                BCM5719           (Cotopaxi)
                BCM5720           (Snaggletooth)
                BCM5725, BCM5727  (Logan)

                Copyright (c) 2010-2016 Broadcom Limited
                          All rights reserved.

Version 1.05.53 (March 5, 2024)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01643897) Extend NCSI 'get package status' cmd support
                             to PCIe NIC.

     Change: 1) Enabled GetPackageStatus NCSI cmd (0x1b) even on NIC cards
                where RMII is not supported.


Version 1.05.52 (September 1, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01555181) Add support to NCSI 'get package status' cmd

     Change: 1) Added support to GetPackageStatus NCSI cmd (0x1b)

Version 1.05.51 (July 17, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01529816) Partition ID in OEM command response is set
                             to zero for all the channel IDs.

     Change: 1) Populate Partition ID based on Channel ID while populating
                response for OEM NCSI command.

Version 1.05.50 (July 06, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01478581) Memory optimization for future bug fix
                             and feature additions.

     Change: 1) Removed iSCSI config buffer and related code as the iSCSI
                OEM NCSI commands are deprecated.
             2) Replaced 4K buffers required to write to nvram and to read
                FRU data with a common 4K buffer.

Version 1.05.49 (May 22, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01493253) Fix HW ARB setting for single device
                             designs.

     Change: 1) Added changes to disable HW arbitration when ARB_OUT
                is not connected to ARB_IN.

  2. Problem: (DCSG01494891) Allow GetFRUData command at package level

     Change: 1) Added changes to allows GetFRUData command at package level
                as per Dell's NCSI spec.

Version 1.05.48 (April 20, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01478194) Link status is not getting updated on BMC
                             inventory page.

     Change: 1) Use SVIDs along with SDIDs while checking for supported
                HPE branded cards.

Version 1.05.47 (April 10, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01470295) Support MCTP discovery for 5719 open LOM
                             adapters.

     Change: 1) Added SSID of the new 5719 open LOM adapter to the list
                of supported HPE branded cards

Version 1.05.46 (March 28, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01439455) Adjust MCTP base protocol with reduced buffer
                             size for MCTP queue.

     Change: 1) Reduced MCTP base msg queue buffer size from 3 to 1 for
                HPE branded cards
             2) Added debug prints in MCTP base code to capture request,
                response timestamp
             3) Changed MT1 value from 120 ms to 100 ms to match DMTF
                DSP0237 spec

  2. Problem: (DCSG01404570) Improve MCTP queue handling logic to avoid
                             queue-lockup issue

     Change: 1) Changed the MCTP circular queue handling to track the queue
                fill level rather than using head/tail pointer

Version 1.05.45 (March 7, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01444228) Adjust reported NCSI max temperature from 125 to
                             115 degree celcius

     Change: 1) Changed the max temerature from 125 to 115 degree celcius to
                accommodate worst case error due to thermal diode accuracy

Version 1.05.44 (January 12, 2023)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01386889) Decouple WP pin status from firmware lockdown in
                             new flash parts

     Change: 1) Added changes to decouple WP pin status while configuring
                firmware lockdown in new flash parts

Version 1.05.43 (December 19, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01343662) NC-SI should not report firmware lockdown as
                             enabled when Write Protect is asserted without
                             sending "set lockdown" command

     Change: 1) Use internal flags to save and report firmware lockdown state
                and reset the firmware lockdown to disable state on POR/
                firmware reset.

Version 1.05.42 (October 12, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01331461) Revert the changes to get sector protection
                             status from status register

Version 1.05.41 (September 21, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01324875) Family Firmware Version is different in
                             hwinventory and device setting

     Change: 1) Fixed the ASCII to BCD conversion logic.

Version 1.05.40 (September 06, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01313737) MAC address is not listed in Get Parameters NCSI
                             command response

     Change: 1) Added changes to populate MAC address in Get Parameters NCSI
                command response properly.

Version 1.05.39 (August 26, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01303207) VLAN Tag field is in the wrong location for
                             Get Parameters NCSI command response

     Change: 1) Get Parameters NCSI command response shows the VLAN Tag field is
                in the wrong location. We are populating the number of MAC
                addresses supported as 8 instead of 12 in the response.
                As a result, VLAN tag field location also changes in the response.
                But we are not handling this properly. Fixed this.

Version 1.05.38 (June 15, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01240814) Sector protection support in new flash parts

     Change: 1) Added changes to configure sector protection in new flash parts
                for NX1 5719 and 5720 adapters.

Version 1.05.37 (June 07, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01234937) Retrieve sector protection status from status register

     Change: 1) Added changes to get sector protection status from status register
                to know whether sector protection has been enabled or disabled.

Version 1.05.36 (May 16, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01211071) NX1 FW support for new flash parts on BCM5719

     Change: 1) Added changes to support new flash parts for NX1 5719 adapters.

Version 1.05.35 (March 15, 2022)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01158497) Support for enabling both RMII and SMBUS at a time

     Change: 1) Added changes to support both RMII and SMBUS at a time based on
                4-part ID.

Version 1.05.34 (November 23, 2021)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01069590) Support for GetFRUData OEM NCSI command

     Change: 1) Added changes to support new NC-SI OEM GetFruData command.
                The NCSI firmware reads complete 4K FRU data from extended
                directory if present and extract the required fieds to populate
                the response.

Version 1.05.33 (November 17, 2021)
===================================
  Fixes:
  ------
  1. Problem: (DCSG01054146) Incorrectly reporting link status change on
                             unconnected port

     Change: 1) When NCSI commands are received on both RMII and SMBUS in
                parallel, the response on SMBUS is going with incorrect
                channel id and this channel id is associated to RMII response
                channel id. We are seeing contention between RMII and SMBUS
                response. As a workaround, we are dropping the response from
                firmware when channel id mismatches between the request and
                the response.

Version 1.05.32 (August 28, 2021)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-55381) NX1 FW support for 3-bit NCSI package ID

     Change: 1) Added changes to support 3-bit NCSI package ID from firmware.
             2) We already have NVM option #61 to configure NCSI package ID.
                This option has capability to support only 2-bit package ID.
                We enhanced the NVM option using the reserved bits available
                in the NIC_SHARED_CONFIG_II region to support 3rd bit of the
                NCSI package ID.
             3) Derived the 3-bit NCSI package ID value from firmware.
                The new value will be configured into the associated registers.

Version 1.05.31 (August 25, 2021)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-55331) NX1 FW support for new flash parts on BCM5720

     Change: 1) Added changes to support new flash parts MT25QL,W25Q,MX25V
                for 5720.

Version 1.05.30 (August 10, 2021)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-54865) Support MCTP discovery for 5720 open LOM

     Change: 1) Added changes to support MCTP discovery for 5720 open LOM
                adapters.

Version 1.05.29 (July 23, 2021)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-53890) Populate NCSI firmware version in hex format

     Change: 1) Added changes to populate NCSI firmware version in hex format
                in Get Version ID (0x15) NCSI command response.

Version 1.05.28 (May 06, 2021)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-53890) Populate NCSI firmware version properly

     Change: 1) Added changes to populate NCSI firmware version properly in
                Get Version ID (0x15) NCSI command response.

Version 1.05.27 (December 15, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-51922) Populate Family Firmware Version from VPD

     Change: 1) Added changes to populate FFV from VPD instead of
                reporting FFV as NCSI FW version.

Version 1.05.26 (October 29, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-51198) Report number of partitions supported
                                count properly

     Change: 1) As Get_Extended_Capabilities NCSI command is per channel,
                we need to report the number of partitions supported on that
                channel as 1. NX1 doesn't support NPAR.

Version 1.05.25 (October 27, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-51142) AHS Device Properties show N/A for
                                Product ID, Device BIOS version and
                                Device Hardware Version fields

     Change: 1) Added changes to populate Product ID, Device BIOS version
                and Device Hardware Version fields properly

Version 1.05.24 (October 23, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-51120) Report HW Arbitration implementation
                                capability

     Change: 1) Added changes to reprot HW Arbitration implementation
                capability in Get_Capabilities NCSI command response

Version 1.05.23 (October 13, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-50770) Side-band Traffic stop observed
                                when running DC cycle stress

     Change: 1) Remember channel state and restore when
                the package gets re-selected.
             2) Support implicit package selection.
             3) Properly handle APE mutex request and grant mechanism.

Version 1.05.22 (September 25, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-50498) Properly return Lockdown state in
                                Get_Status NCSI command response

     Change: 1) Added changes to return Lockdown state in Get_Status
                NCSI command response properly.

Version 1.05.21 (August 24, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-49960) Side-band Traffic stop observed
                                when running DC cycle stress

     Change: 1) Avoiding enabling Tx/Rx mode from ncsi when driver state
                is active.
             2) Detecting driver dead condition to enable Tx/Rx mode from ncsi
                to recover the ping failure in ungraceful shutdown case using
                driver heartbeat notification mechanism.

Version 1.05.20 (August 18, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-46644): Implement secure lockdown

     Change:  1) Added changes to support both hardware and software
                 controlled secure lockdown

Version 1.05.19 (May 15, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-46644): Implement Get Status NCSI command (0x30)

     Change:  1) Added changes to support Get Status NCSI command (0x30)
                 This command populates the below status as part of response.
                 a) WOL status
                 b) FW Lockdown status

Version 1.05.18 (April 16, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-47533): Fix PLDM Monitor and Ctrl version

     Change:  1) In DSP0248 v1.1.0, the "sensorID" in Numeric Sensor PDRs
                 has type uint8_t; while it has type uint16_t in DSP0248 v1.1.1.
                 We have been using the v1.1.1 definition, so we should report v1.1.1
                 when responding to GetPLDMVersion.
              2) Note that HPE branded cards would still use v1.1.0.
              3) Included Beeswax & Bubbles subsystem IDs to support MCTP discovery
                 on these adapters.

Version 1.05.17 (February 17, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-46644): Implement Set Lockdown NCSI command (0x2F)

     Change:  1) Added changes to support Set Lockdown NCSI command (0x2F)
                 a) When "FW Lockdown Enable" bit in the request is set to 1,
                    FW Update from any interface is not allowed.
                 b) When "FW Lockdown Enable" bit in the request is set to 0,
                    FW Update from any interface is allowed.

Version 1.05.16 (February 14, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-46002): Update Spare Number for 332T Adapter

     Change:  1) Added changes to update Spare Number for 332T Adapter
                 from 615730-001 to 616012-001.

Version 1.05.15 (January 15, 2020)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-45989): Do not advertise iscsi boot capability

     Change:  1) Added changes to block advertising iscsi boot capability from NCSI.

Version 1.05.14 (December 17, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-44793): Properly return MAC address count
                                 in GetCapabilities/GetParameters NCSI command response.

     Change:  1) As per spec, we should return maximum MAC address count as 8
                 in GetCapabilities/GetParameters NCSI command response. Fixed this.

Version 1.05.13 (October 18, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-43968): Properly return NumOfPhysicalFunctions
                                 in GetExtendedCapabilities NCSI command response.

     Change:  1) We are always returning NumOfPhysicalFunctions as 1 in
                 GetExtendedCapabilities NCSI command response which is not correct.
              2) Added changes to populate NumOfPhysicalFunctions properly and return
                 the same in GetExtendedCapabilities NCSI command response.

Version 1.05.12 (May 31, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-38157): Observing link flap in ESXi
                                 environment.

     Change:  We added support in NCSI to shutdown PHY based on
              NVRAM bit defined. If this bit is set,
              1) Firmware needs to check driver state. If driver
                 state is not active, then only disable PHY. This
                 driver state is known to firmware from shared memory
                 which is populated by driver.
              2) In ESX environment, firmware is not reading proper
                 shared memory data which is causing to make link flap.
              3) Added changes in firmware to workaround this shared memory issue
                 to resolve link flap issue.

Version 1.05.11 (May 28, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-38157): Support PHY power down feature

     Change:  Added changes in NCSI to enable/disable PHY
              1) Based on NVRAM bit defined
              2) When the driver state is not active,
                 a) Disable PHY only when NVRAM bit is set.
                 b) Enable PHY when NVRAM bit is cleared.
              3) When the driver state is active, enable PHY even
                 though NVRAM bit is set.

Version 1.05.10 (May 24, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-37472): Advertise the boot mode capability
                                 always.

     Change:  1) Added changes to advertise the boot mode
                 capability always.

Version 1.05.09 (May 22, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-38047): Feature to enable/disable
                                 individual ports (unused ports)

     Change:  1) Added changes to shutdown unused ports.

Version 1.05.08 (May 03, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-36810): Provide WOL status from NVM

     Change:  1) Added changes to populate WOL status from NVM

Version 1.05.07 (April 09, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-32133): OCP3.0 RBT PACKAGE ID REQUIREMENTS
                                 FOR NX1 BOARDS

     Change:  1) Added changes to swap GPIO pins to handle
                 OCP method of assigning package id (via gpio) for Aral.

Version 1.05.06 (April 02, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-36810, CTRL-36814): Populate MAX Bandwidth,
                                             WOL status in AHS

     Change:  1) Added changes to populate maximum bandwidth,
                 WOL status in AHS logs.

Version 1.05.05 (March 20, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-32133): OCP3.0 RBT PACKAGE ID REQUIREMENTS
                                 FOR NX1 BOARDS

     Change:  1) Added changes to support multiple RBT devices on the same
                 physical card by populating package ID properly based on
                 NVM option 61 when GPIO pkgID selection method is used.
                 #61. NCSI pkg ID assign value.
                 It is required for OCP 3.0 design.

Version 1.05.04 (February 08, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-34407): Support PHY power down feature

     Change:  Added changes in NCSI to enable/disable PHY
              1) Based on NVRAM bit defined
              2) When the driver state is not active, disable PHY
                 only when NVRAM bit is set.
              3) When the driver state is active, enable PHY even
                 though NVRAM bit is set.

Version 1.05.03 (February 05, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-32133): OCP3.0 RBT PACKAGE ID REQUIREMENTS
                                 FOR NX1 BOARDS

     Change:  1) Added changes to support multiple RBT devices on the same
                 physical card by populating package ID properly based on
                 NVM option 61 when GPIO pkgID selection method is used.
                 #61. NCSI pkg ID assign value.
                 It is required for OCP 3.0 design.

Version 1.05.02 (January 24, 2019)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-34407): Support PHY power down feature

     Change:  1) Added changes in NCSI to enable/disable PHY
                 based on NVRAM bit defined to support this
                 feature.

Version 1.05.01 (November 29, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-33010): MAC addess show reversed order in AHS log

     Change:  Added changes to populate MAC address properly

Version 1.05.00 (October 17, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-32081): Event_Descript_Addendum v.2.6.4

     Change:  Added changes to support Event_Descript_Addendum v.2.6.4

Version 1.04.26 (August 03, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-30749) port failed to receive pkts after ifdown/ifup

     Change: 1) Avoiding enabling Tx/Rx mode from ncsi when driver state
                is active.
             2) Detecting driver dead condition to enable Tx/Rx mode from ncsi
                to recover the ping failure in ungraceful shutdown case using
                driver heartbeat notification mechanism.

Version 1.04.25 (August 02, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-28614): LOM BRCM5719 AC lost behavior

     Issue:   Only 2 ports (port 0 and port 1) are enabled when the AC
              is first plugged in.

     Change:  1) In current implementation, APE is looking at CPMU status (0x362c)
                 register for FUNC_MODE setting based on which APE enables or
                 disables particular port.

              2) APE should always look at RxCPU_CPMU_Status from APE shared
                 memory for FUNC_MODE setting.

              3) Added changes to handle above case properly.

Version 1.04.24 (May 02, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-29311): Need to display FW versions

     Change:  Added changes to populate EFI,PXE and Bootcode versions
              in AHS logs.

Version 1.04.23 (March 29, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-28837): Event_Descript_Addendum v.2.6.3

     Change:  Added changes to support Event_Descript_Addendum v.2.6.3

Version 1.04.22 (February 09, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-27695) BMC gets corrupted NCSI pass thru packets
               when the size is larger than a threshold

     Change:  Network to BMC traffic stops when BMC receives corrupted NCSI
              pass thru packets when the size is larger than a theshold.
              Resetting ncsi in the below cases to avoid this failure.

              1) Resetting ncsi while enabling Rx mode from ncsi when driver state
                 is not active.
              2) Resetting ncsi while enabling Rx mode from ncsi in driver dead
                 condition

Version 1.04.21 (February 06, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-28008) tg3 traffic stop observed when running
              ARP flood to the NCSI shared port of 5719 and ifup/ifdown
              in host OS

     Change: 1) Avoiding enabling Tx/Rx mode from ncsi when driver state
                is active.
             2) Detecting driver dead condition to enable Tx/Rx mode from ncsi
                to recover the ping failure in ungraceful shutdown case using
                driver heartbeat notification mechanism.

Version 1.04.20 (February 01, 2018)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-27339) Discrepancies with respect to Driver
              Version for Broadcom Gigabit Ethernet BCM5720 between
              iDRAC GUI & OMSA GUI on R440

     Change: 1) Added changes to populate ESX OS driver version properly in
                Get OS Driver Version NC-SI command response

Version 1.04.19 (December 05, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-27339) Dell JIT-71310 T440-EST: Discrepancies with
              respect to Driver Version for BRCM GbE 4P 5719-t & BCN5720
              adapter between iDRAC GUI & OMSA GUI on T440

     Change: 1) Added changes to populate OS driver version properly in
                Get OS Driver Version NC-SI command response

Version 1.04.18 (October 18, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-26891) HP Snap3: Event_Descriptor_Addendum v2.6.1

     Change: 1) Added changes to support Event_Descriptor_Addendum v2.6.1.

Version 1.04.17 (August 02, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-26117) No port function info on network adapter

     Change: 1) Added changes to populate OS driver version and OS driver state
                in AHS.

Version 1.04.16 (July 13, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-26103) Wrong part number on AHS log

     Change: 1) Added changes to populate part number with PCA value from VPD of the
                nvram instead of option Kit number.

Version 1.04.15 (July 07, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25648) Sensor 27 location reading value is abnormal
                                in 0 degree C.

     Change: 1) Added changes to send real negative temperature values properly
                by ncsi to iLO.

Version 1.04.14 (June 16, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25823) NX1 - Gen10 Snap1 FF - AHS Requirements.

     Change: 1) Added changes to support the below AHS categories.
                   a) Function Configuration (category:10, catalog:3/4/5/6)
                   b)  Base Function data (category:28, catalog:3/4/5/6)
             2) Added changes to populate OEM Spares Number with SKU spares number
                instead of VPD spares number.

Version 1.04.13 (June 07, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25753) [AHS] 331i: Unterminated string for NIC FW version.
              (JIRA:CTRL-25754) [AHS][Woodville] The AHS Woodville part number issue.
              (JIRA:CTRL-25750) [AHS/field] 331FLR-AHS: no part number.

     Change:  1) Added changes to populate NIC FW version properly.
              2) Added changes to populate HP Part Number with SKU PN instead of VPD PN.

Version 1.04.12 (May 08, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25514) Embedded BCRM 331FLR Adapter management interface

     Change: Reinitialize the NCSI buffer to make sure the buffer can be used to
             respond back by NCSI request and NCSI over MCTP request properly.

Version 1.04.11 (May 05, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25514) Embedded BCRM 331FLR Adapter management interface

     Change: 1) Populating MCTP message tag properly when NCSI request comes over MCTP
                with previous command instance id to overcome MCTP message tag mismatch
                problem.
             2) Fixed the memory overwriting problem to overcome memory leakage issues.

Version 1.04.10 (April 28, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25498) Implemented MCTP End Point UUID command for NX1

Version 1.04.09 (April 13, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25361) FW Revision Display string issue.

Version 1.04.08 (April 12, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-24832) Next version OEM Specific changes.
              
     Change:  Supported next version OEM monitoring tool changes.
             

 
Version 1.04.07 (March 31, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25162) Display family version number (VPD VA) for ncsi version number.
              
     Change:  Changed the logic to display VA info from VPD instead of NC-SI version number in OEM tool.
             

 
Version 1.04.06 (March 17, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-25103) NIC information is not displaying in OEM tool.
              
     Change:  Changed byte order of Vendor Defined message response.
             

 
Version 1.04.05 (February 8, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-24293) OEM specific PLDM PDR change. 
              
     Change:  Changed the snsorID field type to UINT8.
     
         
  2. Problem: (JIRA:CTRL-23788) Flow control always show 0x00 under Windows 2016 in OEM test tool.
              
     Change:  Removed fix of interchanged values of Rx and Tx.



Version 1.04.04 (January 2, 2017)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-23789) MAC address does not display in OEM test tool.
              
     Change:  Changed the logic to read from MAC register for configured MAC address.
     
         
  2. Problem: (JIRA:CTRL-23788) Flow control always show 0x00 under Windows 2016 in OEM test tool.
              
     Cause:   Tx/Rx values are interchanged in OEM test tool with previous fix.

     Change:  Interchanged the return values for Rx and Tx.


Version 1.04.03 (December 21, 2016)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-24151) NC-SI - Unable to see network adapter information in OEM tool.
              
     Cause:   The OEM tool supported model has been deprecated as part of CTRL-23016.

     Change:  Supported both MCTP Commands for vendor defined messages as well as
	      old versioned OEM tool supported model.
     
         
  2. Problem: (JIRA:CTRL-23788) Flow control always show 0x00 under Windows 2016 in OEM test tool.
              
     Change:  Changed the logic to read from MAC register instead of LINK_STATUS.


Version 1.04.02 (December 8, 2016)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-23511) NC-SI - NX1 5719 does not respond to certain channel 
		and instance ID combinations
              
     Cause:   NC-SI firmware classified the packets as ARP if the PEC equals to 0xC3
              
     Change:  Disabled ARP event and changed the logic to check the ARP Get UDID command.


  2. Problem: (JIRA:CTRL-24063) OEM MCTP specific test tool got failed 
              
     Change:  OEM test tool expecting the DID,VID,SSID and SVID as big endian.
              Hence, changed to big endian for OEM specific MCTP command.


Version 1.04.01 (September 29, 2016)
===================================
  Fixes:
  ------
  1. Problem: (JIRA:CTRL-22704) Management traffic may stop when server is powered off.
              
     Cause:   tx/rx flow control causing to drop the packets when server is off.
              
     Change:  disable tx/rx  flow control when there is ungraceful shutdown (to Vaux).


Version 1.04.00 (September 26, 2016)
===================================
  Enhancements:
  ------
    1. (JIRA:CTRL-23016) OEM specific MCTP commands for vendor defined messages and 
		system monitoring.


Version 1.03.16 (February 16, 2016)
===================================
  Fixes:
  ------
  1. Problem: (CSP1001718) Management traffic stops after reboot test in 
              a specific high availability system with 5719 device.
              
     Cause:   BMC to network address filters are not in sync with current link
              state and channel state.
              
     Change:  Refresh BMC to network address filters while performing
              house keeping task.
     

Version 1.03.15 (December 9, 2015)
===================================
  Fixes:
  ------
  1. Problem: In serdes mode, firmware rejects NC-SI "set link" command even 
              when link parameters are valid.
              
     Change:  Fix firmware to use correct boolean operators.
     
  2. Problem: In vendor NC-SI compliance test, NC-SI "enable ch tx" command
              returns failure when no BMC MAC address is assigned.
              
     Change:  Firmware has this restriction to prevent configuration error.
              However this restriction is not stated in NC-SI spec.
              All known BMC implementation already setup BMC MAC address
              before enable channel for transmit.
              Remove this restriction from firmware.

  3. Problem: (CTRL-21363) when NC-SI over MCTP/SMBus is used, NC-SI response 
              MCTP message always set tag to 0 instead of returning command 
              tag value.
              
     Change:  Modify firmware to set response message tag correctly.


Version 1.03.14 (October 8, 2015)
===================================
  Enhancements:
  -------------
    1. (JIRA:CTRL-20396) Modify Vendor OEM command to support getting version
       string from field in VPD.


Version 1.03.12 (April 10, 2015)
===================================
  Fixes:
  ------
   1. Problem: When NC-SI command response size is between 56 to 59 bytes, 
               undersize packet is sent out on NC-SI RMII interface.
               
      Change:  Modify firmware to have correct padding so minimum 60 bytes
               are transmitted on RMII. For NC-SI responses with size < 56 bytes
               correct padding size is already added.
               
               
   2. Problem: Sometimes NC-SI OEM command will fail validation check, resulting
               in 0003-7fff response-reason code being returned.
               
      Cause:   Out of bound index is used for checking valid OEM handler, which
               result in valid OEM command being rejected.
               
      Change:  Fix NC-SI firmware to check for valid handler for standard
               commands only.
            

  Enhancements:
  -------------
    1. (JIRA:CTRL-20396) Add Vendor OEM command to support getting host display
       string from bootcode and NC-SI firmare versions.
       
    2. (JIRA:CTRL-20439) Add Vendor MCTP VDM commands to support query of vendor
       specific health statistic structure.
       
    3. (JIRA:CTRL-20448) Modify Vendor OEM command to return OS driver version
       without prefix driver type.
    

Version 1.03.07 (December 3, 2014)
===================================
  Fixes:
  ------
    1. Problem (CQ73974): Sideband traffic on 2nd port stops after system warm
                reboot, when both 1st & 2nd ports are enabled for transmit,
                and first port is linked down.
             
       Cause:   When system reboots (PCIE reset), RMU source MAC addr registers
                need to be reinitialized. Firmware did not account for link down
                condition during register restoration, which causes egress
                traffic to go to 1st port instead of 2nd port.
               
       Change:  Firmware will check for port link down condition when restoring
                source MAC matching registers.


Version 1.03.06 (October 3, 2014)
===================================
  Fixes:
  ------
    1. Problem (CQ73899): when packet size of NC-SI command over MCTP is larger
                than 255 bytes, firmware returns invalid type, length error.
                
       Cause:   MCTP fragment reassembly routine message size variable is byte 
                long.  This causes packet to be truncated after reassembly.
                
       Change:  Increase message size variable data size to unsigned short.


Version 1.03.05 (September 3, 2014)
===================================
  Enhancements:
  -------------
    1. Firmware increases support of number of multicast MAC addresses 
       filtering from 2 to 8.


Version 1.03.04 (July 22, 2014)
===================================
  Fixes:
  ------
    1. Problem (CQ73659): Sideband traffic stops, after connecting to a ethernet
                hub (so linked at half duplex) for a while with heavy network 
                traffic.
                
       Cause:   Sideband traffic stops due to not enough buffers in transmit 
                buffer pool (ATPM).  When in half duplex mode, under certain 
                collision condition, hardware will lose transmit buffers.
                
       Workaround: Modify firmware to enable buffer pool error interrupt.
                When a transmit buffer is lost, ISR is triggered.  Firmware
                will log the error and reset APE to reinitialize buffer pool.
                Current NC-SI configuration is retained.
                
                

Version 1.03.03 (July 10, 2014)
===================================
  Fixes:
  ------
    1. Problem: "Set MAC Address" NC-SI command, multicast MAC address index
                of 5 results in error reason code 0E08.
                
       Cause:   NX1 NC-SI firmware currently supports 4 unicast MAC, and 2 mcast
                MAC addresses.  According to spec, MAC entry index should be
                1-4 for ucast MACs, and 5-6 for mcast MACs. Current firmware
                will only recognizes index 1-4 for ucast MACs, and 1-2 for 
                mcast MACs.
                
       Change:  Modify firmware entry index check for mcast MAC (5-6) based on 
                NC-SI spec.  Also allow index (1-2) for mcast MAC for backward
                compatibility with existing BMCs.
       
 
  Enhancements:
  -------------
    1. Relax link speed checking in "Set Link" command.  Allow 10G speed, when 
       auto-neg is specified by BMC.  This is needed to allow BMC to have
       generic "Set Link" setting independent of max speed a network controller
       (NC) can support.  Currently there is no NC-SI command to return max 
       link speed capability of a NC.
       
    
    
Version 1.03.02 (July 1, 2014)
===================================
  Fixes:
  ------
    1. Problem: Since v1.3.0 firmware, ape debug log indicates MAC PHY speed
                mismatch after link up.  
                
       Cause:   Firmware did not have right speed mask bits (instead of 0x0700,
                0x0f00 was used) when processing PHY register 25 (Auxiliary 
                Status).  Before v1.3.0, this PHY register was read twice which 
                result in bit11 being cleared on 2nd read, so correct link
                speed was obtained. In v1.3.0 and v1.3.1, this register is read
                once, which result in invalid link speed.
                
       Change:  Modify firmware to have correct speed mask.
       

  Enhancements:
  -------------
    1. Add EEE debug logging capability.
           
           

Version 1.03.01 (June 10, 2014)
===================================
  Enhancements:
  -------------
    1. Add concurrent RMII and MCTP/SMBus NC-SI command processing support.
       Feature is enabled based on vendor subsystem Id.
       
    2. Add PLDM/MCTP/SMBus support for PLDM numeric and state sensor readings.
       Feature is enabled based on vendor susbsystem Id.
          


Version 1.03.00 (June 9, 2014)
===================================
  Fixes:
  ------
    1. Problem (CQ73554) Firmware does not return multicast MAC addresses in
                NC-SI Get Parameters command.
                
       Change:  Modify firmware to report multicast MAC addresses after 
                unicast MAC addresses.
                
                
    2. Problem: Firmware does not return correct firmware version 
                format in NC-SI Get Version ID response.
                
       Change:  Modify firmware to have version ID in BCD encoded format
                without leading 0xf when field is single digit.
                                         
  Enhancements:
  -------------
    1. Rearrange OEM dependent code/data sections into bank0 of scratchpad,
       to free up space for additional common features.
       
    2. Remove unnecessary MII register access to optimize response time to
       some NC-SI commands.    



Version 1.02.46 (May 6, 2014)
===================================
  Fixes:
  ------
    1. Problem (CQ73460) Firmware has wrong host driver state, when ungraceful
                reboot is performed after driver is loaded.

       Cause:   Host port driver updates driver state info in shared memory.
                When graceful shutdown/reboot occur, "unloaded" state is
                updated by driver before unload.  For ungraceful shutdown,
                firmware will reset driver state when host enters Vaux.
                For ungraceful reboot, firmware does not update driver state.
                
       Change:  After PCIE reset occur, firmware will mark host driver for
                all ports as driver unloaded.



Version 1.02.45 (April 17, 2014)
===================================
  Fixes:
  ------
    1. Problem (CQ73087) When multiple devices (packages) are connected to BMC 
                thru same RMII connection, with certain package select with
                hardware arbitration off/on sequence will cause BMC not getting
                responses from package.

       Change:  Previous fix in v1.2.43 is not following NC-SI Spec.
                Hw-arb mode is only changed to "auto bypass" when package is
                selected with hw-arb disabled.  Hw-arb mode does not change
                when package is deselected.


    2. Problem: During SMBus ARPing process, after "Reset Device", or "Prepare
                to ARP" commands, directed "Get DUID" with default slave address
                does not have response from NC.
                
       Cause:   SMBus module clears slave address after above two commands.
       
       Change:  Firmware will re-setup default slave address after processed
                above commands.


    3. Problem (CQ73372) After firmware upgrade, BMC does not receive response
                for "get link status" command.
                
       Cause:   Previous versions of NC-SI firmware dropped all commands to
                the package if package is not selected.  This behavior is
                incorrect.
                
       Change:  Allow "implicit select", when a command is received for the
                package.
    
                    

Version 1.02.43 (Feburary 21, 2014)
===================================
  Fixes:
  ------
    1. Problem (CQ73027) With OEM ports on demand feature, when a port is 
                disabled, link LED still turns on when ethernet cable is 
                connected.
                
       Cause:   Disabled ports are shut off by firmware initially.
                When system transitions from off to on, disabled ports are
                turned on again.
                
       Change:  Modify firmware to detect link change of disabled ports,
                and shut down these ports.
                
                
    2. Problem (CQ73087) When multiple devices (packages) are connected to BMC 
                thru same RMII connection, with certain package select with
                hardware arbitration off/on sequence will cause BMC not getting
                responses from package.
                
       Cause:   When a package is deselected, firmware did not put package in
                bypass mode.  If package was previously selected with hw-arb 
                off, hardware arbitration loop is not complete, which causes 
                package not able to transmit response to management controller.
                
       Change:  Modify firmware to switch hw-arb to bypass mode when package
                is not selected.                                


Version 1.02.42 (January 15, 2014)
==================================
  Fixes:
  ------
    1. Problem (CQ72384) When host running Redhat6.4 with TG3 driver crashes,
               management traffic also stops.
               
       Cause:  Management traffic stop is due to incomplete MAC registers
               configuration.  Some MAC registers are reset back to default
               when GRC reset occurred. Normally firmware will handle this
               correctly.  However when host crashes, some configuration bits
               are not taking effect.
               
       Change: Modify firmware to periodically repair essential MAC registers
               so management traffic won't stop due to host side issues.
               


Version 1.02.41 (January 3, 2014)
=================================
  Fixes:
  ------
    1. Problem (CQ72101) Linux driver does not see link down event when there
               is heavy traffic with NC-SI firmware enabled.
               
       Change: Update firmware fix to only switch back to interrupt driven mode
               when driver is not present to prevent firmware from missing link
               change event.


Version 1.02.40 (December 31, 2013)
===================================
  Fixes:
  ------
    1. Problem (CQ72235) Vendor specific OEM command version 2 does not 
               return proper media type.
               
       Cause:  Firmware did not set media type when version is not 1.
               
       Change: Modify firmware to set media type for all versions.
       
       
    2. Problem (CQ72101) Linux driver does not see link down event when there
               is heavy traffic with NC-SI firmware enabled.
               
       Cause:  Firmware clears link state change bit in ISR before host has
               chance to process status block. So host driver does not see link
               down event.
               
       Change: Firmware will not clear link state change bit when a port has 
               driver loaded.  Firmware will disable link state change interrupt
               and swtich to polling mode.  Every 0.2 second, firmware will
               check if link state changed, and if link state change bit has
               been cleared by host.  If link state change bit is cleared,
               firmware will re-enable link state change interrupt.


Version 1.02.37 (November 13, 2013)
===================================
  Fixes:
  ------
    1. Problem (CQ71799) In NIC module with two 5720 chips, when all ports are
               enabled and connected, sometimes BMC can't receive broadcast
               ingress packets.
               
       Cause:  Hardware arbitration was turned off result in both 5720 chips 
               sending ingress broadcast packet to RMII at the same time.
               Hardware arbitration was not turned on due to not all channels 
               are in init and disabled states when package select is received.
               
       Change: Modify firmware to change hardware arbitration state when BMC
               requests it in package select.

    
Version 1.02.36 (October 16, 2013)
==================================
  Enhancements:
  -------------
    1. (CQ71391) New control bit has been created for "AutoNeg 1G half duplex
       advertisement".  NC-SI firmware will advertise 1G half duplex only when
       control bit allowed it, and current link setting include 1G half duplex.
       Current link setting can be modified by NC-SI Set Link command. 
       

Version 1.02.35 (October 9, 2013)
===============================
  Fixes:
  ------
    1. Problem: No "config required AEN" is sent out after firmware upgrade,
               when AEN is enabled.
               
       Cause:  In some systems hw_arb is not connected and not enabled.
               Default behavior is hw_arb enabled.  This causes config required
               AENs to be stuck in TX FIFO.
               
       Change: Retain old hw_arb setting, carry the setting to new firmware.
       
  
  Enhancements:
  -------------
    1. Add Host to BMC path static configuration for 5720 thru NVRAM setting. 
       Require b57diag v16.4.00 or later. (CQ70891)


Version 1.02.33 (August 29, 2013)
===============================
  Fixes:
  ------
    1. Problem: Firmware does not report correct driver type when VmWare ESX
               driver is loaded.
               
       Cause:  ESX driver is using linux driver ID currently because no ID
               is defined for ESX.
               
       Change: Modify firmware to report ESX driver type.  
               New ESX driver (for 16.4) will use correct driver ID.


    2. Problem (CQ70795) When latest UNDI/UEFI driver is loaded, mgmt traffic
               with VLAN tag can't pass to BMC.
               
       Cause:  when KEEP_VLAN_TAG bit is set in Rx MAC mode register,
               firmware still insert VLAN tag when copying ingress data to BMC.
               This result in ingress packet with extra VLAN tag.
               
       Change: Firmware will not insert VLAN tag back, if VLAN tag is not
               stripped.
               
               

Version 1.02.31 (July 30, 2013)
===============================
  Fixes:
  ------
    1. Problem (CQ68994) remote KVM session is timedout when perform power
                cycle loop for long duration on system with 5719 or 5717.

       Workaround: firmware will wait 8msec before accessing GRC tunnel
                after GRC reset has occurred to prevent APE hang.  Also
                wait for 5 second before resuming APE pool lock up detection, 
                after lock up fix is performed.


Version 1.02.30 (July 12, 2013)
===============================
  Fixes:
  ------
    1. Problem (CQ69397) In OEM commands, certain IP version dependent type
                attributes are not supported.
                
       Change:  Modify firmware to support IP version dependent type attributes.
       
       
    2. Problem (CQ68994) remote KVM session is timedout when perform power
                cycle loop for long duration on system with 5719.
                
       Cause:   APE receive pool locks up sometimes when powering down.
                Firmware already has detection and recovery logics (CQ53586).
                However lockup detection is done every 5 seconds.
                This result in maximum of 8 seconds of no OOB traffic,
                which causes remote session to timeout.
                
       Workaround: Firmware will perform lock up detection every 0.2 second.
                Also recommend CPMU policies: Link idle and Link aware mode
                should be turned off.


Version 1.02.24 (June 26, 2013)
===============================
  Fixes:
  ------
    1. Problem (CQ69397) In OEM commands, certain IP version dependent type
                attributes are not supported.
                
       Change:  Modify firmware to support IP version dependent type attributes.
       
       
    2. Problem (CQ68994) remote KVM session is timedout when perform power
                cycle loop for long duration on system with 5719.
                
       Cause:   APE receive pool locks up sometimes when powering down.
                Firmware already has detection and recovery logics (CQ53586).
                However lockup detection is done every 5 seconds.
                This result in maximum of 8 seconds of no OOB traffic,
                which causes remote session to timeout.
                
       Workaround: Firmware will perform lock up detection every second.


Version 1.02.19 (May 20, 2013)
==============================
  Fixes:
  ------
    1. Problem (CQ68626, CQ68796) firmware does not construct correct Linux
                driver version string in vendor specific health statistic
                structure.
                
       Change:  Partial solution was implemented in v1.2.15 firmware.
                Modify firmware to display ASCII component of version to
                complete fix.
                
       Note:    Linux driver v3.131e or later is required to provide 
                ASCII component of version info to firmware.
                
                           
    2. Problem (CQ68625) Serial number field in vendor specific health 
               statistic structure is blank when VPD does not have "SN" field.
               
       Change:  Modify firmware to fill in "N/A" when serial number is not 
                available.

                         
    3. Problem (CQ68994) Firmware hangs in 5719 device when performing system
            powering up and down for long duration on certain system.
                
       Cause:   On some systems when powering down, there seem to be GRC reset 
                interrupt storm for brief period of time.  When GRC reset is
                active, accessing registers thru GRC tunnel will result in
                APE lock up.
                
       Workaround: Firmware will wait 500usec in LAN state change interrupt
                service routine before accessing registers to avoid lock up.


  Enhancements:
  -------------
    1. Add OEM commands to get and modify iSCSI boot initiator and target 
       parameter configuration in NVRAM.
       

    
Version 1.02.15 (April 22, 2013)
================================
  Fixes:
  ------
    1. Problem (CQ68704) per chip playdead should allow pass-thru traffic.
    
       Change:  Firmware currently shuts down PHY when all ports are in 
                playdead. This behavior was added as enhancement in v1.1 dated
                6/20/2012.  Per customer request, revert code change to allow
                pass-thru traffic when in per chip playdead configuration.

                
    2. Problem (CQ68626, CQ68796) firmware does not construct correct Linux
                driver version string in vendor specific health statistic 
                structure.
                
       Change:  Firmware does not parse 3 digit version components (major, 
                minor, revision, and build) correctly. Modify firmware to parse 
                these values correctly and terminate version string when 
                trailing components are zero.
                
       Note:    Firmware modification only address above CQs partially.
                Linux driver version contains ASCII component. Currently, this
                info is not available to firmware.  Issue will be addressed in
                future version of Linux driver and firmware.



Version 1.02.12 (April 4, 2013)
===============================
  Fixes:
  ------
    1. Problem: Incorrect handling of command length of OEM set/get pass-thru 
                control commands.
              
       Change:  Fixed firmware. Problem was introduced in v1.2.10 when check in 
                additional new OEM commands.


Version 1.02.11 (March 22, 2013)
===================================
  Fixes:
  ------
    1. Problem (CQ68434) on 5725, SMASH firmware UART redirection not visible 
                during initial power up.  This is due to firmware turns on UART 
                redirection after system finished PCIE enumeration.  
       
       Workaround: Bootcode will enable UART redirection function for mgmt.
                firmware.  This requires NC-SI firmware to disable UART 
                redirection function when NC-SI firmware is initializing.
                
    
Version 1.02.10 (March 20, 2013)
===================================
  Fixes:
  ------
    1. Problem (CQ68383): For 5719 in certain system when BMC reset,  RMU
                egress FIFO will receive a few bad packets, and eventually 
                egress FIFO is stuck at "in-progress" state.
                
       Workaround: Firmware detects RMU egress FIFO "in-progress" state when
                firmware is in housekeeping loop, and flush current packet
                to clear out stuck state.  Firmware also log this recovery
                event in debug log.
                

    
Version 1.02.09 (March 12, 2013)
===================================
  Fixes:
  ------
    1. Problem (CQ68144): In 5725B0, magic packet WoL in S3/S4 is not working.
    
       Cause:   WoL is enabled by OS driver, however firmware overwritten
                MacMode register (after driver change state to WoL state) 
                due to long read-modify-write process while driver is still 
                setting up magic packet WoL.
                
       Change:  Shorten firmware MacMode read-modify-write time to avoid
                accidental change of MAC configuration.



Version 1.02.07 (February 21, 2013)
===================================
  Fixes:
  ------
    1. Problem (CQ67143): Firmware version banner does not contain proper format
                in vendor specific health statistic structure.
                
       Change:  Update firmware to construct correct spacing. Also removing
                leading zero in firmware version number.

                
    2. Problem (CQ66411): Firmware does not report correct flow control setting
                in vendor specific health statistic structure when OS driver is
                present.
                
       Cause:   Firmware only refresh flow control setting when link state 
                change interrupt is received.  When OS driver is present,
                firmware reads MAC registers for flow control setting before
                driver has chance to setup current setting.
                
       Change:  Firmware will update flow control setting based on MAC register
                setting when port related fields are updated in health statistic
                structure.

                
    3. Problem: Firmware does not report correct link speed in vendor specific
                health statistic structure when port is linked up at 100mbps.
                
       Cause:   Firmware did not parse current link status correctly when
                update port related fields in health statistic structure.
                
       Change:  Modify firmware to parse current link status field correctly.

                
  Enhancements:
  -------------
    1. Add OEM ports on demand support.  NVRAM configuration contains number 
       of ports to be active.  Non-active ports are shutdown and are not part
       of NC-SI channels in the package. If number of active ports changed in
       NVRAM, firmware will detect and reflect the change when PCIE reset occur.

    2. Add on-chip temperature reading support for 5717 C0 device.
    
    3. Add SMBus ARP support for NC slave address.  User can specify default
       slave address and enable/disable SMBus ARP using diag secfg option.
       
    Note: release.txt is reformatted to fit in 80 columns for easier 
          reading in DOS.   



Version 1.02.00 (December 19, 2012)
===================================
  Enhancements:
  -------------
    1. Support Logan 5725, 5727 devices in same NX1 NCSI pass-thru firmware 
       binary.
    
    2. Add link flap avoidance support to Logan.
    
    3. Add b57diag "apectl -r" support for graceful mgmt firmware reset.
    
    4. Adjust reporting of buffering capability from 2k to 16k bytes.
       so BMC can base on this value to set TCP window size.

 
Version 1.01.18 (October 26, 2012)
==================================
  Fixes:
  ------
    1. Problem: When virtual MAC address is not set, OEM Get MAC Addr command 
                does not respond in correct format.
                
       Change:  Firmware will return all zero MAC address, when virtual MAC 
                is not defined.
       
    2. Problem: 5720 single port mode still result in 2nd port linking up.
    
       Cause:   Unused phy is shutdown by firmware,  GRC reset undo shutdown.
       
       Change:  Firmware will shutdown unused phy after GRC reset of 
                unused port.


Version 1.01.15 (October 17, 2012)
=================================
  Fixes:
  ------
    1. Problem: Firmware reports incorrect number of virtual Q supported 
                for 5717/5717C0.
       
       Change:  There is no VQ in 5717/5717C0.  Modify firmware to reflect 
                correct values.
       
       
    
Version 1.01.12 (October 3, 2012)
=================================
  Fixes:
  ------
    1. Problem (CQ65505): OEM Get Partition Info command  returns incorrect
                device string when device is 5717C0.
                
       Change:  Update firmware to construct correct device string.
       
    2. Problem: Firmware allows Set Link command to specify auto negotiation
                without 1G link speed when port is optical.
                
       Change:  Optical port can only auto negotiated to 1G link speed.
                Firmware will return error when 1G speed is not specified.

    3. Problem: (CQ65877): Playdead function does not work right for 5717C0.
    
       Change:  Firmware will use correct device type for playdead and 
                NVRAM processing.
                                   
    4. Problem: (CQ65670): Host to BMC function not working for 5717C0.
    
       Change:  Firmware change to enable H2B feature when device is 5717C0.


  Enhancements:
  -------------
    1. Add firmware support for APE event SHUTDOWN_REQ (ID=1).  Firmware will
       disable bootcode kick start when APE hung behavior, and halt APE.
       
       
Version 1.01.07 (August 13, 2012)
================================
  Fixes:
  ------
    1. Problem (CQ65073): when an unexpected PERST occur during NVRAM access,
                bogus data might be returned by NVRAM controller.
       
       Workaround: Firmware checks if PERST occur during NVRAM access,
                if it does, retry NVRAM access.
    

Version 1.01.06 (August 3, 2012)
================================
  Fixes:
  ------
    1. Problem: When teaming is setup by BMC for pass-thru traffic, and primary
                channel is down.  Egress pass-thru traffic can't get through.
                
       Cause:   Source MAC address of egress packet is used to search proper 
                channel to send packet out.  In case of teaming, same BMC MAC 
                is mapped to multiple channels.  In current firmware/hardware 
                implementation, first channel being setup using 
                "Set MAC Address" is used to send egress packet. If this 
                primary channel is not linked up, egress packet is dropped.
                
       Change:  Modify firmware to enable BMC MAC address matching of a channel
                only when channel is linked up.  So if primary channel is not 
                up, secondary channel will be used to send out egress packet.
                
    2. Problem: In 5717-5720, after APE reset and without GRC reset for 
                a channel, when first ingress mbuf chain is retired, only subset
                of ARPM buffers will be used for further ingress packets.  
                This is fixed in Logan.

       Cause:   APE reset causes ARPM tail pointer to reset but not head 
                pointer. Workaround in firmware is not to retire first ingress 
                mbuf chain. Current firmware only applies workaround for 
                first ingress packet of the chip.
                
       Change:  Workaround is applied to each channel.
       
       
  Enhancements:
  -------------
    1. Add 5720 single port support. Single port is determined by func_mode=001 
       and APE GPIO4=1.
       

Version 1.01.04 (July 27, 2012)
===============================
  Fixes:
  ------
    1. Problem: Vendor specific health statistic structure sometimes does not 
                contain proper signature after firmware is upgraded.
       
       Change:  When firmware restarts, always initializes signature.

       
  Enhancements:
  -------------
    1. Add 5717C0 chip support.  Temperature sensor is not supported.
    
    2. Add SGMII support for 5719 and 5720.
             

Version 1.01.02 (July 11, 2012)
===============================
  Enhancements:
  -------------
    1. Perform workaround for CQ53586 only when channel is enabled 
       for sideband traffic.
    
    2. Support indirect access of vendor specific health statistic structure 
       in APE scratchpad. (Implementing mutex locking for structure access.)
       Firmware indicates this capability by enabling APE_BEHAVIOR_INDIRECT_SPB0
       flag.
       

Version 1.01.00 (June 20, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ61794): EEE setting in OS is not used by NC-SI firmware after
                driver unload.
    
       Cause:   NC-SI firmware uses NVRAM EEE setting when OS is absent.  
                NVRAM setting can be different from EEE setting in OS.
                
       Change:  OS driver will pass down current EEE setting, so firmware will 
                only use NVRAM setting when OOB.  When driver EEE setting is 
                available, firmware will use these values instead.
                Note: Use window driver v15.4.0.4 and later.
    
    2. Problem (CQ64033): on 5718 with EEE enabled, OS absent, connecting 
                to non EEE switch, sometimes after unplug network cable, 
                link still stays up.
                
       Cause:   The symptom is similar to CQ61516 on 5720.  5718 and 5719 
                contain EEE interop workaround routines.  Link down portion 
                of workaround routine is incorrectly applied during link up 
                processing, this result in link down not being detected.
                
       change:  Remove EEE link down workaround code during link up processing.
       

  Enhancements:
  -------------
    1. Implement per chip function hide feature.  When all ports are in function
       hide mode, firmware will stop BMC NC-SI communication and shut down PHYs.
       
    2. Firmware will process pending APE event, even it can't acquire shared 
       memory mutex.
    
    3. Record current timestamp after firmware init for profiling use.
    
    4. Minor update to vendor specific health statistic structure.
    

Version 1.00.88 (May 11, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ63249): vendor specific features not activated starting from 
                v1.00.85.
    
       Cause:   In v1.00.85, NC-SI firmware no longer wait for rxCPU code 
                before start init. This results in vendor specific features not 
                activated due to PCI subsystem vendor ID is not yet valid.
                
       Change:  Firmware obtains PCI subsystem vendor ID directly from NVRAM.
       

Version 1.00.87 (May 8, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ63144): BMC to NC-SI communication stops when mgmt tx pool 
                is close to full.
    
       Cause:   In current firmware, when processing egress pass-thru frame, 
                if mgmt tx pool does not have enough buffers, firmware will 
                wait until free tx buffer is available before processing 
                next egress PT packet or NC-SI command from BMC.  When there is
                failure result in almost empty buffer pool, BMC can't 
                communicate with NC.
                
       Change:  Modify firmware to drop egress PT packets if resource is not 
                available. This allows BMC to NC communication to continue.



Version 1.00.86 (May 3, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ63056): Max ingress Pass-thru vlan packets sometimes can't 
                get thru after host driver is loaded.
                
       Cause:   When UNDI driver loads, it changes MTU from 1522 to 1518.  
                This causes max size vlan pass-tru packet to be dropped by hw.
                
       Change:  Modify NC-SI firmware to monitor current MTU setting, and 
                adjust setting when necessary.
                
                
                
Version 1.00.85 (April 6, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ62513): 5720 host to BMC broadcast message can't get thru in 
                OEM system.
    
       Cause:   Problem is related to CQ61721. H2B protocol filtering register 
                is out of sync due to register is not restored after GRC reset 
                under certain condition.
                
       Change:  when H2B configuration changes, always setup all H2B related 
                filtering registers. After GRC reset, always restore all H2B 
                related filtering registers.
                

    2. Problem: NC-SI firmware does not respond to BMC for a long delay after 
                powering up.
    
       Cause:   To reduce NVRAM access contention with bootcode, NC-SI firmware
                waited for 1st port bootcode to finish initialization before 
                its initialization. Newer version of bootcode takes longer 
                to finish initialization, which causes delay on NC-SI firmware.
                
       Change:  Modify NC-SI firmware to not wait for bootcode.  Any property 
                values depending on bootcode will be initialized after 
                bootcode is up.
                
                

Version 1.00.80 (March 5, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ61926): After deselect a package, BMC does not receive 
                duplicated deselect package response.
    
       Cause:   After initial deselect package is processed, firmware stops 
                processing further NC-SI commands except select package.  
                This is not conforming to NC-SI spec.
                
       Change:  Firmware will process duplicated deselect package commands.
                Also when hw arbitration is enabled, commands can be processed 
                without select package.


Version 1.00.76 (Feb. 29, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ61721): 5720 host to BMC broadcast message can't get thru in 
                OEM system.
    
       Cause:   Host to BMC filtering configuration in registers are reset 
                after GRC reset.
       
       Change:  Firmware will restore correct host to BMC filter setting 
                after GRC reset.

       
    2. Problem (CQ61722): when system is in S4/S5 with WoL LSA setting, 
                sending NC-SI reset channel command causes the link to connect 
                at 100mbps instead of 10mbps.
                
       Cause:   Channel reset command clears out link partner advertised value.
       
       Change:  Firmware will retain link partner advertised value 
                when reset channel.
       
       
    3. Problem (CQ61516): on 5720 with EEE enabled, OS absent, connecting to 
                non EEE switch, sometimes unplug network cable, link still 
                stays up.
                
       Cause:   Firmware applied 5718,5719 EEE interop workaround routines 
                in 5720. These workaround routines are not needed in 5720.
                
       Change:  Firmware will not apply EEE interop workaround routines 
                for 5720.
       
       

Version 1.00.72 (Feb. 15, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ61091): Vendor specific OEM command does not return proper 
                family version.
    
       Change:  Firmware and windows driver change to obtain family version 
                info from INF file.
              
              
    2. Problem (CQ61379): When WoL speed is LSA, unplug/replug ethernet cable 
                result in link speed at 100mbps instead of 10mbps.
                
       Cause:   Firmware did not recognize driver state correctly, which 
                result in incorrect link setting.
       
       Change:  Modify firmware to recognize driver state correctly.
       
       
    3. Problem (CQ61389): when EEE is disabled in NVRAM, EEE register setting 
                is still modified by firmware.
    
       Change:  Firmware will not setup EEE related registers when NVRAM EEE 
                option is disabled.
       



Version 1.00.69 (Jan. 11, 2012)
===============================
  Fixes:
  ------
    1. Problem (CQ60253): on 5718, playdead mode 001 with port one linked up 
                at 100M, pass-thru traffic does not go thru after BMC issued 
                channel reset followed by channel setup.
       
       Cause:   Receive mgmt filter can't be programmed.  Similar to 
                CQ54484, CQ53892
       
       Change:  Firmware workaround by restart APE subsystem.
       
       
    2. Problem (CQ59749): On 5720, Host to BMC communication is not reliable 
                when multiple guest OS sessions are running.
                
       Cause:   Hardware can support up to 8 host MAC address matching.  
                Current firmware new MAC entry selection could wipe out 
                active MAC address.
                
       Change:  Modify firmware new MAC entry selection algorithm to minimize 
                effect on active sessions. This change allows up to 7 
                concurrent host to BMC guest OS sessions. (One session is
                used by parent OS).
                


Version 1.00.66 (Dec. 5, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ59749): On 5720, Host to BMC communication is not reliable 
                when more than 4 guest OS sessions are running.
                
       Cause:   Current firmware implementation only supports up to 4 host 
                MAC addresses for B2H processing per channel.
                
       Change:  Modify firmware to learn up to 8 host MAC addresses 
                (hw limitation) independent of host source channel.  
                Also implement aging to support management traffic migration.
              
              
    2. Problem (CQ59793): EEE is disabled after channel reset NCSI command 
                is sent.
    
       Change:  Modify firmware to retain EEE setting after processing 
                channel reset.
       
       
    3. Problem (CQ59864): For 5720 in certain systems, host to BMC broadcast 
                message can't be received by BMC.
                
       Cause:   H2B global broadcast/multicast filtering bits are reset for 
                some systems while transition from Vaux to Vmain.
                
       Change:  Modify firmware to detect the condition and re-enable H2B 
                global bcast/mcast filtering.
       
        
    4. Problem (CQ59902): 5718 with playdead on channel one result in link flap
                when channel one is enabled for pass-thru traffic.
                
       Cause:   Link flap is due to APE resetting constantly after a firmware 
                bug introduced in v1.00.60.
                
       Change:  Modify firmware to prevent constant APE reset.



Version 1.00.60 (Nov. 10, 2011)
===============================
  Fixes:
  ------
    1. Problem: NC-SI over MCTP/SMBus does not return correct response for 
                supported commands.
    
       Cause:   The CQ58964 fix in V1.00.54, cause MCTP/SMBus path not 
                freeing up response in queue.
       
       Change:  Firmware will pop entry from response queue for MCTP/SMBus mode.
       
       
    2. Problem (CQ59606): When using OS based firmware upgrade utility with 
                "-noreset" option, NX1 NCSI firmware does not restart after 
                system reboot.  NX2 NCSI firmware does restart.
                
       Cause:   NX1 NCSI is running on APE, which does not restart when 
                GRC reset, PCIE reset occur. This design is intentional.  
                NX1 Firmware can emulate NX2 behavior with firmware 
                modification.
                
       Change:  Firmware will check if NVRAM contains new firmware image 
                when PCIE reset occurs.
                If new firmware exists, restart APE to load new firmware.
                
  Enhancements:
  -------------
    1. Firmware will send Config Required AEN, when firmware just restarted 
       due to firmware upgrade, and BMC enabled Config Required AEN before.
       
    2. Firmware will not overwrite old debug log, when firmware is restarted.
                   


Version 1.00.58 (Oct. 24, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ59318): GetLinkStatus command returns incorrect FC setting 
                when driver is loaded with various Tx/Rx FC setting.
                
       Change:  Firmware did not know FC setting when driver is present.  
                Modify firmware to get current FC setting from MAC registers 
                (which are set by driver).
                
                

Version 1.00.54 (Oct. 4, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ58695): Vendor specific OEM command max vendor and 
                product name sizes too short.
    
       Change:  Modify firmware to support max 32 byte vendor string, 60 byte 
                product string. These limits are used in NX2 NC-SI 
                implementation.
       
    2. Problem: Vendor specific health statistic header structure contains 
                incorrect entry number, and entries are not in ascending order.
                
       Change:  Change firmware to contain correct information.
       
    3. Problem (CQ58964): During broadcast storm, issuing multiple NC-SI 
                commands causing firmware to lock up.
    
       Cause:   NC-SI responses are queued up but can't be sent due to excess 
                network to BMC traffic. Firmware ran out of response buffer 
                and lock up.
                
       Change:  Firmware will monitor RMU FIFO, and allow NC-SI responses 
                to get thru, and free response buffer properly.
                
    4. Problem (CQ58963): sideband passthrough traffic stops unpredictably 
                when UEFI mode is enabled, and perform reboot stress test.
    
       Cause:   Shared memory driver state is out dated when system is in Vaux.
                As system enters Vmain, firmware will not perform proper link 
                setup when link changes, due to incorrect driver state.
                
       Change:  Firmware will overwrite current driver state to unloaded 
                when system is in Vaux.
       
       
  Enhancements:
  -------------
    1. (CQ58844) Support up to 2 multicast MAC address perfect match by using 
       Set MAC Address command. This change is needed to allow IPv6 neighbor 
       solicitation packet to get to BMC when multicast filtering is turned on.
    

Version 1.00.48 (Sept. 14, 2011)
===============================
  Fixes:
  ------
    1. Problem: Vendor specific thermal sensor and health statistic structure 
                missing terminating field.
    
       Change:  Modify firmware to contain proper terminating field.
       
    2. Problem: Firmware does not identify proper 5720 NVRAM buffered parts.
    
       Change:  Modify NVRAM part identification routine to support 
                Snaggletooth & Logan.
       
    3. Problem: Vendor specific get inventory command does not return vendor 
                name from VPD.
      
       Change:  Firmware will parse VPD for vendor name.
       

  Enhancements:
  -------------
    1. Add initial support for Logan.
    

Version 1.00.46 (August 23, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ57031): Broadcom OEM command get PXE version is not returned 
               correctly.
    
       Change: Modify firmware to account for unaligned 4 byte access to 
               PXE version string.
       
       
    2. Problem (CQ56096/CQ57073): NX2 NC-SI firmware encounters problem with 
               re-transmission logics.
    
       Change: Modify re-transmission logics of NX1 NC-SI firmware to adopt 
               the new NX2 re-transmission logics. 

               
  Enhancements:
  -------------
    1. Add boot mode reporting for vendor specific health statistic collection 
       support.


Version 1.00.44 (August 19, 2011)
===============================
  Fixes:
  ------
    1. Problem: Vendor specific thermal sensor and health statistic collection 
                is not active in certain LOM/NIC configuration.
               
       Cause:  Initialization of these features is based on subsystem vendor 
               ID. In certain situation, PCIE config register might not contain
               valid value.
               
       Change: Firmware will obtain subsystem vendor ID from APE shared memory 
               rxCPU write segment.

       
    2. Problem (CQ57480): 5719/5720 port0 link at 100M when boot to DOS in 
               some systems.
    
       Cause:  Certain systems generate many PCIE reset, GRC reset during 
               power up. Under certain timing sequence last event does not 
               result in firmware processing current link status.
               
       Change: Modifying firmware to clear LAN state change flag before port 
               link status processing, so new event won't be missed.

               
    3. Problem (CQ57031): Broadcom OEM command get PXE and iSCSI boot version 
               is not implemented.
    
       Change: Firmware will retrieve PXE and iSCSI boot versions from NVRAM 
               and return response in BCD format according to NC-SI spec.
               

Version 1.00.41 (August 4, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ57484): Linux : 5719 loopback randomly failed on suse.
               
       Cause:  EEE PHY setup routine when link is down is being called
               when EEE is disabled.
       
       Change: Added checks to only call routine when EEE is enabled and
               driver is not active.


Version 1.00.40 (July 28, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ55535): link flap at 1G when driver is absent with 
               EEE enabled when connect to Dell 5548 switch.
               
       Cause:  EEE PHY setup routine is missing when link is down.
       
       Change: Firmware added missing routine.
       
  
  Enhancements:
  -------------
    1. Add FUNC_MODE cached value validation check.
    
    2. Update vendor specific thermal sensor and health statistic collection 
       support.
    
    3. Update CQ56328 5719 device workaround to use GPIO2 for Mux select signal.
    
    4. Remove 5718 A0 patch routine to free up code space.
    
    5. Vendor specific OEM get inventory command product name field is filled 
       with data from VPD.

        

Version 1.00.37 (July 18, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ56804): when 5718 is in serdes mode, and port0 is playdead, 
               port1 can't link up.
    
       Cause:  This is related to CQ52060.  Shutdown port0 serdes, will affect 
               port1.
       
       Workaround: Firmware will not shutdown port0 PHY, so port1 can be used.
               The side effect is that port0 will stay linked up in playdead.
               
    2. Problem (CQ57033): vendor specific OOB WOL enable/disable commands does 
               not take effect right away when issued in Vaux.
               
       Change: Firmware will restart bootcode to setup correct WOL setting, 
               when commands are received in Vaux.
               
    3. Problem (CQ56328): 5719 unable to access temperature sensor reading.
    
       Workaround: Firmware will kick start PCIE refClock.
       
  
  Enhancements:
  -------------
    1. Add extended VPD access for obtaining product and serial# info.
    
    2. Minimize number of link down caused by link configuration when driver 
       is absent by first checking current link status.
        
   
Version 1.00.34 (June 30, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ55684): Unable to link up on playdead Serdes port.
    
       Cause:  Serdes PHY is not configured by NC-SI firmware.
    
       Change: Firmware will reset serdes PHY when channel is enabled and port 
               is in playdead mode. Firmware will restart APE subsystem to work
               around receive mgmt filter issue similar to CQ54484, CQ53892.

  Enhancements:
  -------------
    1. Add OEM Get Partition Info command support.
    
    2. Add vendor specific thermal sensor and health statistic collection 
       support.
    
    3. Optimize block copy (pass-thru traffic processing) to take advantage 
       of LDM/STM instructions.
    

Version 1.00.24 (May 11, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ55433): Get Controller Packet Stats command returns invalid 
               "valid bytes received" counter value after disconnecting 
               ethernet cable.
               
       Cause:  When ethernet cable is disconnected, "bad bytes received" 
               hw counter is incremented.
       
       Change: Firmware workaround by clearing "bad bytes received" counter 
               after link is down.
       
    2. Update EEE processing script to avoid link flap.
    
    

Version 1.00.22 (May 2, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ54724): BACS4 cable diag test fail when NC-SI firmware is 
                enabled.
    
       Cause:   When driver suspend, NC-SI firmware will setup link related 
                registers which interfere with test.
       
       Change:  Firmware will not setup link related registers while host driver 
                is in suspend mode.
       
    2. Problem (CQ55002,CQ55115): v1.0.20 causes min size egress pass-thru 
                traffic not getting thru.
    
       Cause:   v1.0.20 added min size packet check for VLAN.  The checking 
                logic was incorrect.
       
       Change:  Fix min size packet checking.
       
    3. Problem: network statistic counter Valid bytes Received sometimes report 
                negative number.
    
       Cause:   Valid bytes received is constructed from Total Bytes Received 
                minus Bad Bytes Received.
       
       Change:  Firmware will read Bad Bytes Received counter before 
                Total Bytes Received.
       

  Enhancements:
  -------------
    1. (CQ53520) Add thermal hysteresis to 5719 ALOM.


Version 1.00.20 (Apr. 12, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ54312): OEM Get Inventory command does not report OS driver 
               sub-build field.
    
       Change: Modify firmware to provide driver sub-build info.
       
    2. Problem (CQ53892): 5718 func_mode:100 can't program receive mgmt filters
               (all ports).
    
       Change: Firmware workaround by restart APE subsystem.
       
    3. Problem (CQ54462): 5719 any playdead port link up 1G can't have 
               pass-thru traffic.
    
       Cause:  MAC clock is running at 6.25Mhz which is too low for 1G traffic.
       
       Change: Firmware detects above condition and bump up core clock to 
               62.5Mhz
               
    4. Problem (CQ54314): Unable to get link on playdead port when OS driver 
               is loaded.

       Cause:  For port that is software playdead, driver is still loaded with 
               driver state set.
       
       Change: Modify firmware to control MAC/PHY registers when port is 
               playdead regardless of driver state.
               
    5. Problem (CQ54484): 5718 func_mode:010 port1 disable and re-enable 
               can't have pass-thru traffic.
    
       Cause:  Receive mgmt filter disable all filter bit can't be cleared.
    
       Change: Firmware workaround by restart APE subsystem.


  Enhancements:
  -------------
    1. Add link flap avoidance, and Aux 1G link speed support.(CQ54389, CQ54393)
    
    2. Add MAC/PHY link speed setting mismatch recovery.
    
    3. MCTP reassembly can accommodate non-zero seq# for 1st fragment.


Version 1.00.15 (Mar. 29, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ54064): 5720 fiber: S3 and S4 WOL does not work when NC-SI
               is enabled.
    
       Change: Fix firmware to check for Serdes mode when device is 5720.

    2. Problem (CQ54147): NC-SI SetLink command pause behavior is reversed.
    
       Change: Fix firmware to follow the spec.


Version 1.00.11 (Mar. 23, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ53068): OEM enable/disable OOB WoL command does not work on 
               port 2&3 on 5719.
    
       Change: Firmware updates correct configuration locations in NVRAM.
       
    2. Problem (CQ53586): Passthru traffic stops after running power on/off 
               cycle tests for hours.
    
       Cause:  APE receive management buffer pool can't retire used buffer 
               properly after certain GRC reset sequence.  So passthru traffic 
               stops when receive pool is empty.
       
       Change: Firmware workaround the problem by detecting ARPM error condition
               and issue another GRC reset to reinitialize ARPM.
       
  Enhancements:
  -------------
    1. Add port play dead func_mode support.  When a port is in play dead mode 
       and NC-SI channel is not enabled, power down PHY.
       
    2. (CQ53520) Add thermal alerts to 5719 ALOM thru GPIO3,4.
       
               
               
Version 1.00.07 (Feb. 10, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ52617): host driver picks up old VMAC setting when VMAC 
                setting is altered while driver is disabled.
    
       Cause:  Bootcode is responsible for passing VMAC setting to shared 
               memory. When VMAC setting is changed, and bootcode is not 
               restarted, old VMAC setting still resides in shared memory.
       
       Change: When VMAC setting is changed, NC-SI firmware will restart 
               bootcode.

    2. Problem: OEM set VMAC command response payload size is incorrect.
    
       Change: Firmware will account for one extra reserved byte.
       
    3. Problem (CQ50700): trunk traffic stops when one of LACP port driver 
               is unloaded while NC-SI and WoL are enabled.
               
       Cause:  This issue only occurs with HP switch. When switch side trunk 
               port is linked up half duplex, the port still participates in 
               the trunk even though LACP partner is not present.  
               Also when driver WoL is enabled, WoL speed setting is passed 
               to NC-SI firmware for link setup. Possible speed settings are 
               auto/100/10/LSA.  For 100/10/LSA speed setting, NC-SI firmware 
               forces link speed, which results in link partner links up in 
               half duplex.
               
      Change:  Modify firmware to perform auto-negotiation with WoL speed 
               setting to avoid link partner linking up in half duplex.
         

  Enhancements:
  -------------
    1. Remove channelID checking for per package NCSI commands.
    
    
Version 1.00.04 (Jan. 25, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ52320): NCSI pass-thru failure when using same BMC MAC for 
               different channels with one channel enabled at a time.

       Cause:  when Channel TX is disabled, BMC to network source MAC matching 
               is not disabled for disabled channel.
               
       Change: Disable BMC source MAC matching for MAC address associated with 
               disabled channel.


Version 1.00.03 (Jan. 20, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ52303): same link flapping issue as CQ50585 but when driver
               is present.
    
       Change: Disable link aware power mode of port0 when port0 is linked down
               and port1 is linked up, no matter driver is loaded or not.
               
    2. Problem (CQ52111, CQ52304): default NCSI setting prevent network to host 
               tagged packets to get thru in sawtooth and Cotopaxi.
               
       Cause:  unicast tagged packet is matching default mgmt filter set which 
               discard unicast tagged packet.  However discard action should 
               not take effect because stage one perfect mac address matching 
               is not true.
               
       Change: Modify filter set action from discard to passing to both host 
               and APE. APE will drop the packet in software.  There is some 
               performance impact.
               
    3. Problem (CQ52302): APE mutex error is seen after entering b57diag after 
               a power cycle.
    
       Cause:  when GRC reset and core clock is 1.56Mhz, bootcode MII access 
               takes a long time, which causes APE mutex request to timeout.
               
       Change: Extend APE mutex request timeout to accommodate slow core clock.
       
    
  Enhancements:
  -------------
    1. Add OEM commands: enable/disable OOB WoL.
    
    2. Add OEM commands: get thermal data for 5719 and 5720.
       

Version 1.00.00 (Jan. 10, 2011)
===============================
  Fixes:
  ------
    1. Problem (CQ50585): 5717/5718 link flaps after running heavy pass-thru 
               traffic at 100mb for 5 minutes or more with EEE enabled, port0 
               linked down and port1 connected to EEE enabled switch.
               
       Change: Disable link aware power mode of port0 when port0 is linked down
               and port1 is linked up.
               
    2. Problem (CQ52159): firmware does not check OEM payload version.
    
       Change: firmware implements OEM payload version check.
    
    3. Problem: some NCSI responses with command specific reason code do not 
               return command type in upper byte of reason code.

       Change: command specific codes for  vlan filter(0b), set MAC address(0e),
               and set NC-SI flow control(14) will contain command type in 
               upper byte.
                
  Enhancements:
  -------------
    1. enable/disable EEE setting in driver absent mode can be configured 
       thru NVRAM setting.


Version 0.99.24 (Dec. 8, 2010)
===============================
  Fixes:
  ------
    1. Problem (CQ51079): Host to BMC telnet session stops working after 
               user login.
    
       Cause:  under size packet from host was not padded correctly, so packet 
               is not sent to BMC.
       
       Change: Adjust correct padding size for host packet with size 57-59 
               bytes.
       
    2. Problem (CQ51109): Cotopaxi NDIS6 driver force 100Full link speed 
               causing link flap.
    
       Cause:  When link speed setting is modified, NDIS driver unload and 
               restart. NCSI firmware takes over link setting after driver 
               unload. However driver restart right away which causes 
               MAC & PHY setup issue.
               
       Change: In NC-SI firmware check APE shared memory driver state before 
               MAC & PHY operation.
       
    3. Move H2B interrupt from #13 to #8 per LSI team request.
       Need Snaggletooth FPGA build dated 12/03 or later.
       
    4. Problem (CQ51456): Broadcom OEM set virtual iSCSI MAC address result 
               in LAN MAC address changed.
    
       Cause:  Firmware did not check virtual MAC address type.
       
       Change: Firmware will only allow LAN type virtual MAC address.

    5. Problem: After H2B traffic stopped for 5 minutes, host can't ping BMC 
                unless BMC ping host first.
    
       Cause:  When GRC reset occur, H2B global filter bits are cleared out, 
               so broadcast H2B packet does not get thru.
               
       Change: Modify firmware to setup H2B global filter after GRC reset.
       

  Enhancements:
  -------------
    1. Add code to detect Snaggletooth 2port/1port FPGA build.
    
    2. Move virtual MAC storage from APE segment to protected segment to 
       accommodate virtual MAC support by UEFI driver.
       Note: Need following bootcode: 5718c1.25 5719c1.05 5720c0.07
       
    3. Implement OEM SetPassthru, GetPassthru commands to turn on/off H2B/B2H 
       and N2B/B2N pass-thru.
       Default H2B/B2H are disabled, N2B/B2N are enabled.
       
       
Version 0.99.16 (Nov. 11, 2010)
===============================
  Fixes:
  ------
    1. Problem (CQ50084): iSCSI reboot stress test failed when NCSI FW is 
               enabled.
    
       Cause:  APE crashes when host driver scan PCIE config space, which 
               causes network traffic to stop.
       
       Change: Move APE firmware image to bank2 and bank3 scratchpad to avoid 
               host access bank1 while APE is executing from bank1.
               
    2. Problem: GetParameter cmd link setting field contains wrong format.
    
       Change:  Undo CQ49314. return field format based on final 
                NC-SI spec 1.0.0.
       
    3. Update firmware NC-SI version from 1.0.0a to 1.0.0
    
  Enhancements:
  -------------
    1. Add Snaggletooth host to BMC (H2B/B2H) passthru functions.
       In this release, H2B/B2H are enabled/disabled when N2B/B2N are 
       enabled/disabled. Future release will allow host and network passthru 
       control independently using OEM commands.
     
       Note: This release supports one port Snaggletooth FPGA card.
       
    
Version 0.99.12 (Oct. 19, 2010)
===============================
  Fixes:
  ------
    1. Problem (CQ50272): Winfwupg can't upgrade NCSI firmware when 5718 is 
               in SerDes mode.
       
       Cause:  Current firmware header has media type 1(copper).
       
       Change: Update firmware binary header with media type 3(copper&fiber), 
               and code type 7(NCSI).
       
    2. Problem (CQ50366): Reset channel command does not clear MAC address 
               filter.
    
       Change: Modify firmware to clear BMC MAC address when processing 
               reset channel.
    
  Enhancements:
  -------------
    1. Add code to link setup, and link status change processing to support 
       EEE configuration.  
     

Version 0.99.09 (Oct. 5, 2010)
===============================
  Fixes:
  ------
    1. Problem (CQ50135): In SerDes mode, losing pass-thru traffic when 
                entering S3/S4 state.
       
       Cause:   Same problem as CQ4991, where link stays at 1G, but CPMU is in 
                D0u state with MAC clock at 6.25Mhz.
               
       Change:  Modify firmware to set MAC clock to 60Mhz when in Vaux with 
                SerDes mode.
       
    2. Problem: When duplicated commands (same IID) result in duplicate 
                responses. The byte order of payload length of 2nd response 
                is incorrect.
                
       Change:  Fix byte order problem in firmware.
     
  Enhancements:
  -------------
    1. Support NCSI BMC communication thru SMBus using MCTP (NCSI/MCTP/SMBus). 
       Firmware will respond to MCTP control commands:
            GetEndpointID, GetMCTPVersionSupport, GetMessageTypeSupport.
       and support MCTP fragmentation and reassembly.
       NCSI pass-thru traffic is not supported over MCTP due to speed 
       limitation, therefore only subset of NCSI commands related to NC status,
       parameters are allowed.
       
       Note: b57diag v14.15 is needed to configure SMBus parameters.
       
    
Version 0.99.04 (Sept 27, 2010)
===============================
  Fixes:
  ------
    1. Problem (CQ49868): Pass through traffic fails after sending an invalid 
               SetLink command and changing link speed.
    
       Change: Modify firmware to not update stored link setting when SetLink 
               parameter is invalid.
       
    2. Problem (CQ49869): SetLink command returns Flow Control as disabled 
               when speed is set tp 10/100 FULL with FC enabled.
    
       Change: Modify firmware to setup Tx/Rx Flow Control correctly based on 
               auto/forced, full/half conditions.
       
    3. Problem (CQ4991): Pass through traffic fails in S3/S4 when WOL is 
               disabled in OS driver.
    
       Cause:  When link is 1G with CPMU in D0u state, MAC clock is 6.25Mhz, 
               which is too slow for 1G traffic.
       
       Change: Modify firmware so when in Vaux maximum link speed is 100mb.  
               Also when in Vmain, bump up D0u MAC clock to 60Mhz.
       
                            

Version 0.99.00 (Sept 10, 2010)
===============================
  Fixes:
  ------
    1. Problem (CQ49631): When a specific invalid NC-SI command (7f) is 
                received, AEN counter is incremented.
    
       Change:  Modify firmware to not increment AEN counter when respond to 
                invalid command 0x7f.
       
    2. Problem (CQ49673): Unable to accept control commands greater than 
                60 bytes.
    
       Change:  Firmware will pass command validation when command payload size
                is correct even when packet contains extra padding bytes.
                
    3. Problem (CQ49674): Unable to copy files to a mapped drive via pass-thru.
    
       Cause:   Firmware was enhanced to use interrupt for ingress/egress 
                packet processing. A set of flags are used to pass info from 
                interrupt service routines to main task. The flags got 
                corrupted when interrupt occurs while read-modify-write flags,
                which result in stop processing of egress packets.
                
       Change:  Put protection around clearing of flags in main task.
       
    4. Problem (CQ49806): Dropped command with invalid header revision will 
                not increment channel dropped counter.
    
       Change:  Drop counter is incremented, if command revision, or 
                package ID is incorrected, but valid channel ID was provided.
                
  Enhancements:
  -------------
    1. Use interrupt driven ingress/egress packet processing to improve 
       performance. Also tune the packet processing routines to minimize 
       number of interrupts.           


Version 0.98.20 (August 20, 2010) Beta
======================================
  Fixes:
  ------
    1. Problem (CQ49369): An Invalid Command Type will always return incorrect 
                reason and response code.
  
       Change:  Modify firmware to check for invalid command first before 
                checking valid command length.
     
    2. Problem (CQ49370): Get NCSI Statistics command always return 0 for 
                NCSI receive packets counter.
  
       Change:  NCSI receive packets counter was not incremented.  Modify code 
                to increment counter.
     
    3. Problem: Get NCSI pass-thru statistics command always return 0 
                for 4 of 5 ingress pass-thru counters.
     
       Change:  Mark these 4 ingress pass-thru counters as unsupported 
                counters.
        
    4. Problem (CQ49500): Under Linux, if unload driver before powering down 
                the system, the NCSI pass-thru connection stops 
                when system enters S5.
             
       Cause:   When entering Vaux, under certain condition, APE ARPM/ATPM 
                is enabled while state machine is still in reset.
     
       Change:  Modify firmware to enable ARPM/ATPM after phy setup is complete.
     
    5. Problem (CQ49557): Pass-thru is not working with SerDes link.
  
       Change:  Modify firmware to init MAC correctly for SerDes.
     
    6. Problem: Sometimes when entering b57diag, b57diag will report phy Mutex 
                locked by APE error.
  
       Cause:   Somteimes during init, firmware stuck at MII access after 
                obtained phy mutex.
     
       Change:  Modify firmware to have timeout when MII access can't complete.
     
    7. Problem (CQ49576): Set link command returns an incorrect reason code 
                for SerDes mode.
  
       Change:  Modify firmware to return 02 instead of 05 when media conflict.
       
    8. Problem (CQ49577): Unable to re-establish pass-thru connection 
                after Reset Channel command with SerDes.
    
       Cause:   Reset Channel wipes out channel flag indicating SerDes mode.
       
       Change:  Modify firmware to re-setup SerDes flag, so correct link setup 
                can be performed.
       
       
Version 0.98.16 (August 11, 2010) Beta
======================================
  Fixes:
  ------
    1. Problem (CQ49313): Get Parameters command does not return the correct 
                flow control settings.
  
       Change:  Modify firmware to return current RMU flow control settings.
     
    2. Problem (CQ49314):Get Parameters command returns incorrect link settings.
  
       Cause:   Firmware returned desired link settings in Set Link command, 
                which is incorrect.
     
       Change:  Modify firmware to return current link status in format like 
                Get Link Status response.
     
    3. Problem (CQ49315): Link does not transition to 1G after waking up 
                from S4 or S5.
  
       Change:  Modify firmware to setup link in Vmain, OS absent based on 
                Set Link parameter.
     
    4. Problem (CQ49289): Port 1 was unable to wake up by ping packet 
                when system enter S3/S4 mode.
  
       Cause:   windows driver did not setup correct WoL info in host segment 
                of APE shared memory due to write issue. Also firmware did not 
                setup link in Vmain/Vaux transition.
            
       Change:  Modify firmware WoL support logics to have same link speed 
                behavior same as when no mgmt firmware is loaded. 
             

Version 0.98.11 (August 5, 2010) Beta
=====================================
  Fixes:
  ------
    1. Change:  When WoL is enabled by driver, limit Vaux speed to <=100mb.
    
    2. Change:  In "Get Controller Packet Statistics Response", update 
                "Runt Packets Received", and "Jabber Packets Received" 
                counters instead of "Error Runt Packets Received", and 
                "Error Jabber Packets Received" counters.
       
    3. Change:  Fix byte order of AEN type in AEN packet.
    
    4. Problem: "Configuration Required" AEN can't get triggered.
    
       Change:  When this AEN type is enabled, and NC-SI firmware encounter 
                unexpected restart, trigger this AEN.
       
    5. Problem: firmware crashed after repeatedly issuing 
                "Get Controller Packet Stat" commands.
    
       Change:  Memory overwrite during construction of "Get Controller Packet 
                Stat" response, due to not enough space in response buffer.  
                Increase response buffer size.
    
    6. Problem: "Get Parameters" response returns incorrect "Link Settings" 
                field after "Reset Channel" command is issued.
       
       Change:  Retain "Link Settings" value when perform "Reset Channel".
       
    7. Problem: Response containing reserved field contains random value.
    
       Change:  Zero out reserved fields in responses.
      

Version 0.98.7 (July 23, 2010) Beta
===================================
  Fixes:
  ------
    1. Problem (CQ48778): GetLinkStatus returns invalid data after 
                a channel reset.
    
       Change:  After channel is enabled update link status.
       
    2. Problem (CQ48896): After Linux driver unload, link speed can be 
                either 100/1000mb.
    
       Change:  Firmware will resetup link parameters after driver unload.
       
    3. Problem (CQ48897): Linux driver can't show NCSI firmware version 
                via ethtool.
    
       Change:  Firmware updates firmware status with correct value.
       
    4. Problem (CQ48735): After over night power cycle test, pass-thru traffic 
                is disconnected.
    
       Cause:   Firmware stucks in buffer allocation, when GRC reset occurs 
                (which reset MAC module) while processing egress 
                pass-thru packet.
               
       Change:  Firmware detects GRC reset condition, discard current 
                egress packet, and recover.

  Enhancements:
  -------------
    1. Add debug log to record link/state changes and NCSI commands received,
       which can be read using b57diag.
       
    2. Additional fine tuning on pass-thru traffic processing 
       to reduce processing overhead. (CQ47965)
       
    3. Remove Vaux max speed 100mb restriction, setup speed based on NCSI 
       SetLink parameter.
    
    4. Add firmware restart capability, when firmware is not responsive.
       Need RxCPU bootcode version 1.20.


Version 0.98.0 (June 18, 2010) Beta
===================================
  Fixes:
  ------
    1. Problem: NC-SI "Clear Initial State" response payload size incorrect.

       Change:  Byteswap payload size.
       
    2. Problem: After a mgmt packet with VLAN tag is received, non-tag packets
                followed still contain same VLAN tag.

       Change:  Clear out VLAN tag after processing a packet.
       
    3. Problem (CQ47961): NC-SI mgmt traffic(PT) stops after a linux kernel 
                panic. 

       Cause:   Host side rx buffers filled up causing xoff being sent, 
                which stop all incoming traffic including NC-SI mgmt traffic.

       Change:  Detect driver dead and FC enabled condition, and disable FC.

    4. Problem (CQ48075): Deselect package with hw arb disabled, PT traffic 
                should stop.
    
       Change:  Modify firmware to observe the behavior.               
  
    5. Problem (CQ48223): NC-SI mgmt traffic(PT) stops after Windows BSOD 
                when link at 10/100mbps.
    
       Cause:   When BSOD occurs, GRC reset causes MAC mode default to GMII mode  
                When link is 10/100mbps, there is mismatch between PHY and MAC.
                Bootcode does not setup MAC due to mgmt firmware is enabled.
                Mgmt firmware does not setup MAC due to driver present.
                Driver does not setup MAC because it is dead.
                
       Change:  Detect MAC and PHY mismatch condition, and correct setting.
       
  Enhancements:
  -------------
    1. Support Cotopaxi 4 port device.

    2. Add flex addressing (virtual MAC) OEM cmd. (CQ45133)
    
    3. Change APE clock speed from 62.5Mhz to 125Mhz 
       to improve mgmt traffic performance. (CQ47965)


Version 0.97.0 (April 26, 2010) Beta
================================

Initial Beta Release.

                      
                      
Read Me
=======
1. To update bootcode in b57diag:
        "upgfrm -b -fee5717c1.13"
2. To update/program NC-SI firmware in b57diag:
        "seprg -a 5718ns0.97"
3. To turn on mgmt firmware in b57diag:
        "setman -e"
                          
            


